1. Field of the Invention
The present invention relates to a file storage system, a file storing method and a file searching method therein and, more particularly, to a file storage system connected to a network, a method for storing a file overflowing a capacity of a single storage, and a method for searching a stored file in the file storage system.
This work was supported by the IT R&D program of MIC/IITA [2005-S-405-02, A Development of the Next Generation Internet Server Technology]
2. Description of the Related Art
Examples of storages for storing files include disks, diskettes, compact disks (CDs), and so on. Hard disk is widely used to store a large amount of data. Generally, a single disk is built in a computer. However, as an amount of data increases, several disks connected through a network are used. Especially, an intelligent disk having a separate memory and a separate operation unit in each disk can be used as data storage.
When several disks connected through the network are used, a single file is stored in one of the disks. In such an environment, space where a single file is stored is limited by the size of the initially selected disk. That is, it is impossible to create a file overflowing the size of the initially selected disk for storing the file.
In order to store the single file in several disks, the file is divided into several sections and the sections are stored in the several disks. Information about the sections can be stored in a bitmap format. However, this method may store the sections at random locations, not a continuous space, depending on operations of the operating systems. As a result, input/output performance may be degraded. According to the method of storing the information in the bitmap format, the file storage range is limited by the number of sections that can be expressed. As the file size increases, storage space where the information about the sections is stored will be used excessively.
A conventional method for managing a file storage system containing multiple data storage devices is disclosed in U.S. Pat. No. 6,880,102 B1, invented by William Bridge, filed by Oracle International Corporation on May 29, 2002, registered on Apr. 12, 2005. In this patent, data storage space is abstracted based on logical volumes, and the logical volumes are managed based on extents. Especially, a physical disk drive is divided into several partitions and one logical volume is comprised of one or more partitions. This method can be efficiently applied to data mirroring and redundant data storage using parity such as RAIDS. In addition, several disks are divided into a plurality of failure groups and a plurality of mirror partners so that, when problems occur, recovery probability of the stored files is increased and several files are not simultaneously influenced by a single error. In this way, stable data management can be achieved in such a situation that the storage devices are divided.
Another processing method is proposed to cope with a case where the storage space is insufficient in a drive disk corresponding to a mirrored partner of a certain disk drive.
In case that the disk drive selected to redundantly store a primary extent has no sufficient space for next extents, the extent storing the primary extent is deallocated and a new disk drive is selected to allocate the primary extent.
Such a technique is disclosed in the method for allocating the mirrored extent sets. However, a case where a space is insufficient while storing a file is not disclosed.
As another related art, a method for automatically resizing a disk drive volume is disclosed in U.S. Pat. No. 5,956,745, invented by Ted Kelly Bradford, filed by Novell, Inc on Apr. 23, 1997, registered on Sep. 21, 1999. In this patent, fragmentation problem is eliminated by resizing a volume block with respect to a volume storing data under an environment where one or more disk drives exist. In such a related art, volumes, volume blocks configuring the volume, and various tables storing their information are introduced. Information about the existing volumes are acquired and analyzed, and previously stored files are moved and stored according to a newly modified volume block size. Then, a volume state is reset according to the new volume block size. Specifically, at least one volume block must be allocated in order to store a single file. A file having a size smaller than the volume block size can be processed using a suballocation mechanism.
Therefore, if supported by the operating system, the storage space can be used efficiently by dividing a single volume block into a plurality of fragments such that files with a small size can be stored. The suballocation blocks may be contained in a single volume block. At this point, the size of several suballocation blocks may not be exactly equal to the size of the single volume block. The file can be stored over several suballocation blocks.
In the second method of the related art, however, as the size and number of the files increases, cost spent in managing the information increases because the data structure managing the blocks has the bitmap format.